public class NM {
    //lambda表达式的使用；
    //函数式接口的使用；
    @FunctionalInterface//无返回值无参数；
    interface NoParameterNoReturn{
        void text();
    }
    @FunctionalInterface//无返回值一个参数；
    interface OneParameterNoReturn{
        void text(int a);
    }
    @FunctionalInterface//无返回值有多个参数；
    interface  MoreParameterNoReturn{
        void text(int a,int b);
    }
    @FunctionalInterface//有返回值无参数；
    interface NoParameterReturn{
        int text();
    }
    @FunctionalInterface//有返回值有一个参数；
    interface  OneParameterReturn{
        int text(int a);
    }
    @FunctionalInterface //有返回值有多个参数；
    interface MoreParameterReturn{
        int text(int a,int b);
    }

    public static void main(String[] args){
        //lambda表达式的使用；
        NoParameterNoReturn noParameterNoReturn=
                ()->System.out.println("无返回值无参数");
        noParameterNoReturn.text();

        OneParameterNoReturn oneParameterNoReturn=
                a ->System.out.println("无返回值一个参数:参数为："+a);
        oneParameterNoReturn.text(9);

        MoreParameterNoReturn moreParameterNoReturn=
                (a, b) ->System.out.println("无返回值多个参数：两个参数相加之和："+(a+b));
        moreParameterNoReturn.text(9,1);

        NoParameterReturn noParameterReturn=()-> 10;
        System.out.println(noParameterReturn.text());

        OneParameterReturn oneParameterReturn=a -> a+10;
        System.out.println(oneParameterReturn.text(10));

        MoreParameterReturn moreParameterReturn=(a, b) ->a+b;
        System.out.println(moreParameterReturn.text(10,12));


    }

    public static void main0(String[] args){
        NoParameterNoReturn noParameterNoReturn=new NoParameterNoReturn() {
            @Override
            public void text() {
                System.out.println("text...匿名内部类的使用");
            }
        };
        noParameterNoReturn.text();
    }

}
